package net.ifilm.service;

import net.ifilm.common.IFilmException;
import net.ifilm.dao.FilmTypeDao;
import net.ifilm.entity.FilmType;
import net.ifilm.entity.PageCount;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 *
 */
@Component
public class FilmTypeService {

    @Autowired
    public FilmTypeDao filmTypeDao;

    // ------------------------------------------------------------------------------------------------ public method

    /**
     * 查询电影类型记录数
     *
     * @return 电影类型记录数
     */
    public int findFilmTypeCount() {
        return filmTypeDao.queryFilmTypeCount();
    }

    /**
     * 分页查询电影类型列表
     *
     * @param pageCount
     * @return
     */
    public List<FilmType> findSplitFilmType(PageCount pageCount) {
        return filmTypeDao.querySplitFilmType(pageCount);
    }

    /**
     * 插入新的电影类型
     *
     * @param newFilmType 电影类型名称
     */
    public void addFilmType(String newFilmType) throws IFilmException {
        int count = filmTypeDao.queryFilmTypeByName(newFilmType);

        // 检查增加的电影类型名称是否已经存在
        if (count != 0) throw new IFilmException("类型名称为［" + newFilmType + "］已经存在！");
        // 增加新的电影类型名称
        filmTypeDao.insertFilmType(newFilmType);
    }

    /**
     * 根据类型名称查询类型纪录
     *
     * @param newFilmType
     * @return
     */
    public int findFilmTypeByName(String newFilmType) {
        return filmTypeDao.queryFilmTypeByName(newFilmType);
    }

    /**
     * 根据ID删除电影类型
     *
     * @param filmTypeId
     */
    public void delFilmTypeById(String filmTypeId) {
        filmTypeDao.delFilmTypeById(Integer.parseInt(filmTypeId));
    }

    /**
     * 更新电影类型名称
     *
     * @param filmType
     */
    public void updTypeName(FilmType filmType) {
        filmTypeDao.updateTypeName(filmType);
    }

    public List<FilmType> queryFilmTypeByFilmId(int filmId) {
        return filmTypeDao.queryFilmTypeByFilmId(filmId);
    }

    public void delFilmType(Map<String, Object> parameterMap) {
        filmTypeDao.delFilmType(parameterMap);
    }

} ///:~
